/**
 * Created by c.y on 2018/3/16.
 * 全局的router的配置, 以及其跳转的控制
 */

import Vue from 'vue';
import VueRouter from 'vue-router';
import store from '../store/index';
import {setClientInfo} from '../config/config'; // 配置信息
import projectRouter from './projectRouter';
import judgmentUrl from '../tool/judgmentUrl';


setClientInfo(); // 将设备信息写入本地存储

Vue.use(VueRouter);

// 路由的动态加载，最先开始加载项目路由
// 如果是app的话,需要动态加载路由配置
let router = new VueRouter(projectRouter);

// 路由的跳转的控制
router.beforeEach((to, from, next) => {

    // 如果微信分享的话，微信会在地址栏添加额外参数
    if (judgmentUrl.getUrlQuestionMark()) {
        window.location.href = judgmentUrl.getRightProjectUrl();
    }
    // arr里存放需要登录状态下才能访问的页面的name
    // 过滤  实名认证，申请记录，修改密码
    // 收入贷界面
    let arr = ['f-auth', 'f-apply-record', 'f-update-password'
        , 'incoPersonalInfo', 'incoHouseAndJobInfo', 'incoBindCard', 'incoPhotoInfo', 'incoAuditResults'];
    let loginFalse = ['f-login', 'f-register', 'f-forget-password'];  // 登录后不能进入 登录、注册、忘记密码界面
    //判断是否登录，如果没有登录则判断是否往arr里的页面进行跳转，如果是，则跳转到登录页
    let sid = window.sessionStorage.getItem('newSid');
    if (sid) {   // 已经登录
        if (loginFalse.indexOf(to.name) !== -1) {
            window.history.go(-1);
        }
    } else {  // 未登录
        if (arr.indexOf(to.name) !== -1) {
            next('f-login');
        }
    }
    next();
});

router.afterEach((to, from) => {

    if (to.name == '/f-main') {
// 微信预加载 分享功能

    }

    // 记录访问页面地址
    store.commit('UPDATE_PAGE_ACCESS_RECORD', {pageName: {name: to.name, fullPath: to.fullPath}});
    // 跳转到顶部,解决ios空白问题，不要问为什么这么写，删掉一个就会出错，谨慎操作
    window.scrollTo(0, 2);
    setTimeout(function () {
        store.commit('UPDATE_APP_STYLE', {
            height: document.documentElement.clientHeight + 1
        });
        window.scrollTo(0, 0);
        store.commit('UPDATE_APP_STYLE', {
            height: '100%',
            overflow: 'auto',
            '-webkit-overflow-scrolling': 'touch'
        });
    }, 5);

});

export default router;
